In the field of this invention it is known that in recent years, iterative decoding has emerged as one of the most promising techniques for improving performance of a communication receiver such as a wireless communication receiver. In an iterative decoding scheme for decoding received transmitted symbols, two receiver modules (e.g., two constituent decoders, equalizer and decoder, multi-user detector and decoder, etc.) are running iteratively while exchanging data. Each decoder module receives an a-priori soft input information and generates an a-posteriori soft output, which serves as an a-priori information to the other decoder module. The quality of the a-priori information improves iteratively until some stopping condition is met.
During the data transmission there will be some data blocks that will be correctly decoded after several iterations, while there will be other blocks that will require more iterations to converge to the error-free result. It is desirable to adopt some method of estimating whether the decoding is correct and to stop the iterations after the method indicates the correct decoding. In this way the average number of iterations, and consequently the average power consumption by the decoding device, can be reduced.
The above method is called ‘stopping criteria’ for turbo decoding. Several different ‘stopping criteria’ methods are known:
Cyclic Redunancy Check (CRC) Method
If the encoded blocks contains CRC bits, the cyclic redundancy check is performed after each iteration. If CRC passed, the iterations are stopped. This method:                Provides the best stopping performance—saves up to 70% iterations comparing to 8 iterations decoding for high SNR (signal to noise ratio) without error-correction degradation        CRC check that has to be done anyway is performed by decoding device        Not applicable to blocks without CRC bits        Introduces processing delay (CRC done after each iteration)Cross-Entropy (CE) Method        
The cross-entropy between the soft output of the current and the previous iterations is calculated. If the computed value is less than a threshold value the iterations are stopped. This method:                Provides good stopping performance—saves 50%-60% iterations comparing to 8 iterations decoding for high SNR without error-correction degradation        Requires memory to store the previous iteration data (1 word/encoded_bit)        Introduces processing delay (cross-entropy calculation done after each iteration)Sign-Change-Ratio (SRC) Method        
The number of sign changes between the extrinsic information of the current and the previous block is calculated. If the number of sign changes is less than a threshold value the iterations are stopped. This method:                Provides good stopping performance—saves 50%-60% iterations for high SNR without error-correction degradation        Requires memory to store the previous iteration data (1 bit/encoded_bit)        Introduces processing delay (SRC done after each iteration)Hard-Decision-Aided (HDA) Method        
After each iteration the hard decision on the information bits is done. If the hard decision of the current and the previous block agree, the iterations are stopped. This method:                Provides good stopping performance—similar to CE and SRC methods        Requires memory to store the previous iteration data (1 bit/encoded_bit)        Introduces processing delay (the processing done after each iteration)The LLR (Log Likelihood Ratio) Amplitude Aided (LAA) Method        
The absolute value of the amplitude of each extrinsic data is compared to a threshold value. A counter counts the number of times the amplitude exceeds the threshold. At the end of each iteration, the count is compared to a certain threshold. When the count is higher than the threshold, the iterations are stopped. This method:                Provides the simplest criteria for hardware implementation—requires only one comparator and one counter.        Introduces no processing delay.        Provides performance equivalent to CE, SRC and HDA.        
However, all these prior art methods have the disadvantage that they work only on a whole block. Iterations will always be done on the whole block even in cases where most of the bits in the block converged to the right solution and only a small fraction of it needs more iterations to converge. This results in a significant waste of processing resources. A need therefore exists for an iterative decoding scheme wherein the abovementioned disadvantage(s) may be alleviated.